Quality of service (QoS) refers to a set of techniques to manage the available resources of a network. It is achieved by managing delay, delay variation (jitter), bandwidth, and packet loss (i.e. “service”) parameters of a network. There are various QoS architectures available today but the simplest and most utilized is the DiffServ (differentiated services) model. This model utilizes a Differentiated Services Code Point (DSCP) in a Type of Service (ToS) byte of an Internet protocol (IP) header so that a packet can be classified and forwarded to achieve its required service parameters. The DiffServ model is applied at boundaries (e.g., interfaces) between network nodes (e.g., routers, switches, etc.).
How a packet is serviced in a network can vary between network nodes. The variation may be due to implementation differences or just due to hardware limitations. In most cases, the differences in how packets are serviced are small but these differences may be a factor between a stable, trouble-free network or a network that is constantly changing (e.g., route flapping and re-routing). Consider, for example, the scenario where a routing protocol's signaling (e.g., network control, or NC, packets) is treated differently between nodes in the network. One node may treat a NC packet as a high-priority packet while a downstream node may treat the NC packet as only a best-effort (e.g., lower priority) packet. Instead of dropping other (e.g., non-NC) packets first, the downstream node drops the NC packet first, which can result in route flapping. The route flapping, in turn, may cause either a re-route or a complete service outage depending on the availability of a redundant path.
The DiffServ model can be utilized so a packet can achieve its required latency, jitter, and bandwidth restrictions. A node employing the DiffServ model can forward higher priority traffic first before forwarding lower priority traffic. However, sometimes, higher and lower priority packets (e.g., NC packets and non-NC packets) are intermingled and can end up sharing the same resources (e.g., a node interface). Even though critical packets may get forwarded under most conditions, there may be other conditions (e.g., heavy congestion) where giving preference or priority to a type of packet is not sufficient protection.